Verilog HDL与FPGA数字系统设计第2版

您所在的位置:网站首页 fpga现代数字系统设计 PDF Verilog HDL与FPGA数字系统设计第2版

Verilog HDL与FPGA数字系统设计第2版

2023-08-17 11:24| 来源: 网络整理| 查看: 265

7343892a437b10fd0d130eeefb71352f.gif

随着数字技术的高速发展,人们已经不再采用各种功能固定的通用中、小规模集成电路和电路图输入方法设计数字系统,而是广泛地采用硬件描述语言对数字电路的行为进行建模,并使用电子设计自动化(Electronic Design Automation,EDA)软件自动地对所设计的电路进行优化和仿真,然后使用逻辑综合工具将设计转化成物理实现的网表文件,最后用可编程逻辑器件或者专用集成电路(Application Specific Integrated Circuit,ASIC)完成数字系统。因此,掌握硬件描述语言、EDA技术和可编程逻辑器件已成为当今数字系统设计者的重要任务。

目前,符合IEEE标准的硬件描述语言(Hardware Description Language,HDL)有VHDL和Verilog HDL。两者的应用广泛,都能够通过程序描述电路的功能,从而进行数字电路的设计。由于Verilog HDL在ASIC设计领域占有重要的地位,并且它是在C语言的基础上发展起来的,语法较自由,易学易用,因此本书选取Verilog HDL进行电路设计。同时,本书还介绍了ModelSim软件和Quartus II软件的使用方法,读者可以使用它们仿真和综合Verilog HDL代码。

《Verilog HDL与FPGA数字系统设计第2版》是作者根据多年的教学科研经验以及指导学生参加全国电子设计竞赛的经验编写而成的。

20cf05784840e3137923f411d5a00edb.png35ef01fd595f7b1c44df050bbe56f894.png

扫码了解更多 ↑

在内容上,将数字逻辑设计和Verilog HDL有机结合在一起,方便读者快速进入现代数字逻辑设计领域。按照“数字逻辑设计基础、Verilog HDL建模技术、可编程逻辑器件的结构原理、EDA设计工具软件、数字电路系统设计实践”的体系结构编写。为了让读者更容易掌握Verilog HDL知识,本书在介绍数字电路设计的过程中列举了Verilog HDL的很多例程,并假定读者没有任何数字逻辑基础知识。

读者对象

本书可用作高等学校电气信息类专业的本、专科学生参加全国大学生电子设计竞赛的教材或教学参考书,也可以作为学习EDA技术、数字系统设计或电子技术的参考书。

目录

上拉下滑查看目录 ↓

前言

第1版前言

教学建议

第一篇 数字系统基础

第1章 数字逻辑设计基础  / 2

本章目的  / 2

1.1 数制及其相互转换  / 2

1.1.1 数制  / 2

1.1.2 不同进制数的相互转换  / 4

1.2 二进制代码  / 5

1.2.1 二-十进制编码  / 5

1.2.2 格雷码  / 6

1.2.3 奇偶校验码  / 8

1.2.4 ASCII字符编码  / 9

1.3 逻辑运算及逻辑门  / 11

1.3.1 基本逻辑运算  / 11

1.3.2 常用复合逻辑运算  / 14

1.3.3 集成逻辑门电路简介  / 15

1.3.4 三态门  / 20

1.4 逻辑代数的基本公式和规则  / 21

1.4.1 逻辑代数的基本定律和恒等式  / 21

1.4.2 逻辑代数的基本规则  / 22

1.4.3 逻辑函数表达式的形式  / 23

1.5 逻辑函数的代数化简法  / 25

1.6 逻辑函数的卡诺图化简法  / 26

1.6.1 逻辑函数的最小项及其性质  / 26

1.6.2 逻辑函数的最小项表达式  / 27

1.6.3 用卡诺图表示逻辑函数  / 28

1.6.4 用卡诺图化简逻辑函数  / 31

1.6.5 用卡诺图化简含无关项的逻辑函数  / 33

1.7 组合逻辑电路设计  / 35

1.7.1 设计组合逻辑电路的一般步骤  / 35

1.7.2 组合逻辑电路设计举例  / 36

小结  / 40

习题  / 40

第2章 Verilog HDL入门与功能仿真  / 42

本章目的  / 42

2.1 硬件描述语言简介  / 42

2.1.1 硬件描述语言的起源  / 42

2.1.2 硬件描述语言的特点  / 43

2.2 Verilog HDL程序的基本结构  / 44

2.2.1 Verilog HDL模块组成  / 44

2.2.2 Verilog HDL模块举例  / 45

2.3 编写测试模块  / 47

2.4 ModelSim仿真软件的使用  / 49

2.4.1 创建工作目录  / 50

2.4.2 输入源文件  / 50

2.4.3 建立工作库  / 50

2.4.4 编译设计文件  / 50

2.4.5 将设计文件载入仿真器  / 52

2.4.6 运行仿真  / 53

2.4.7 调试结果  / 54

2.5 Verilog HDL基本语法规则  / 57

2.5.1 词法规定  / 57

2.5.2 逻辑值集合  / 57

2.5.3 常量及其表示  / 58

2.5.4 数据类型  / 60

2.6 编译指令、系统任务和系统函数  / 67

2.6.1 Verilog HDL编译器指令  / 67

2.6.2 Verilog HDL系统任务  / 69

2.6.3 Verilog HDL系统函数  / 71

小结  / 72

习题  / 73

第3章 组合逻辑电路建模  / 74

本章目的  / 74

3.1 Verilog HDL门级建模  / 74

3.1.1 多输入门  / 74

3.1.2 多输出门  / 76

3.1.3 三态门  / 76

3.1.4 门级建模举例  / 77

3.2 Verilog HDL数据流建模  / 79

3.2.1 数据流建模  / 79

3.2.2 表达式与操作数  / 82

3.2.3 运算符  / 82

3.2.4 运算符的优先级别  / 87

3.3 组合电路的行为级建模  / 88

3.4 分层次的电路设计方法  / 96

3.4.1 设计方法  / 96

3.4.2 模块实例引用语句  / 98

3.4.3 迭代结构  / 100

3.5 常用组合电路及其设计  / 102

3.5.1 编码器  / 103

3.5.2 二进制译码器  / 104

3.5.3 七段显示译码器  / 106

3.5.4 二进制数与8421码的转换  / 108

小结  / 115

习题  / 115

第4章 时序逻辑电路建模  / 119

本章目的  / 119

4.1 锁存器  / 119

4.1.1 基本SR锁存器  / 119

4.1.2 门控D锁存器  / 121

4.1.3 门控D锁存器的Verilog HDL建模  / 122

4.2 触发器  / 123

4.2.1 D触发器的逻辑功能  / 123

4.2.2 有清零输入和预置输入的D触发器  / 124

4.2.3 有使能端的D触发器  / 125

4.2.4 时序逻辑电路建模基础  / 126

4.2.5 D触发器及其应用电路的建模  / 128

4.3 寄存器和移位寄存器  / 131

4.3.1 寄存器建模  / 131

4.3.2 移位寄存器建模  / 132

4.3.3 移位寄存器应用电路建模  / 136

4.4 同步计数器  / 138

4.4.1 同步计数器的设计  / 138

4.4.2 同步计数器的Verilog HDL建模  / 142

4.5 Verilog HDL函数与任务的使用  / 146

4.5.1 函数说明语句  / 146

4.5.2 任务说明语句  / 149

4.6 m序列码产生电路设计  / 151

小结  / 155

习题  / 156

第5章 有限状态机设计  / 158

本章目的  / 158

5.1 状态机的基本概念  / 158

5.1.1 状态机的基本结构及类型  / 158

5.1.2 状态机的状态图表示法  / 159

5.1.3 状态机的设计步骤  / 160

5.2 基于Verilog HDL的状态机描述方法  / 160

5.2.1 状态图的建立过程  / 160

5.2.2 状态图的描述方法  / 161

5.3 状态机设计中的关键技术  / 165

5.3.1 状态编码  / 165

5.3.2 消除输出端产生的毛刺  / 166

5.3.3 使用One-Hot编码方案设计状态机  / 168

5.4 状态机设计举例  / 170

5.4.1 十字路口交通灯控制电路设计  / 170

5.4.2 汽车尾灯控制电路设计  / 176

小结  / 181

习题  / 182

第6章 可编程逻辑器件  / 184

本章目的  / 184

6.1 概述  / 184

6.1.1 PLD的历史  / 184

6.1.2 PLD器件的符号  / 186

6.2 简单可编程逻辑器件  / 187

6.2.1 PLA  / 188

6.2.2 PAL与GAL  / 190

6.3 复杂可编程逻辑器件  / 195

6.3.1 传统CPLD的基本结构  / 195

6.3.2 基于查找表的CPLD结构  / 198

6.4 现场可编程门阵列  / 199

6.4.1 FPGA实现逻辑函数的基本原理  / 200

6.4.2 FPGA的一般结构  / 203

6.5 Intel FPGA器件系列及开发平台  / 204

6.5.1 器件系列  / 204

6.5.2 FPGA开发板简介  / 205

小结  / 207

习题  / 208

第二篇 数字系统设计实践

第7章 FPGA开发工具的使用  / 214

本章目的  / 214

7.1 Quartus Prime 软件概述  / 214

7.1.1 软件的安装与设置  / 214

7.1.2 Quartus Prime的设计流程  / 217

7.2 基于Verilog HDL输入的电路实现  / 220

7.2.1 建立新的设计项目  / 220

7.2.2 输入设计文件  / 222

7.2.3 分配引脚  / 222

7.2.4 编译设计文件  / 226

7.2.5 编程器件,测试功能  / 227

7.2.6 使用电路网表观察器查看电路图  / 230

7.2.7 实验任务  / 230

7.3 基于Verilog HDL输入的电路仿真  / 231

7.3.1 输入设计文件,建立新的设计项目  / 232

7.3.2 分配引脚,编译设计源文件  / 233

7.3.3 波形仿真  / 233

7.3.4 编程器件,测试功能  / 240

7.3.5 实验任务  / 240

7.4 基于原理图输入的电路实现  / 241

7.4.1 建立新的设计项目  / 241

7.4.2 输入电路原理图  / 242

7.4.3 分配引脚  / 245

7.4.4 编译设计项目  / 245

7.4.5 编程器件,测试功能  / 245

7.4.6 实验任务  / 245

7.5 基于原理图和Verilog HDL混合输入的电路实现  / 246

7.5.1 编码、译码、显示电路  / 246

7.5.2 输入原理图文件,建立新的设计项目  / 247

7.5.3 输入HDL底层文件,完善原理图文件  / 249

7.5.4 分配引脚,编译设计项目  / 249

7.5.5 编程器件,测试功能  / 251

7.5.6 实验任务  / 251

7.6 基于IP模块的电路设计  / 251

7.6.1 LPM_COUNTER模块的设置与调用  / 253

7.6.2 嵌入式锁相环模块ALTPLL的设置与调用  / 257

7.6.3 存储器模块LPM_ROM的配置与调用  / 261

7.6.4 实验任务  / 269

7.7 嵌入式逻辑分析仪的使用  / 270

7.7.1 嵌入式逻辑分析仪的实现原理  / 270

7.7.2 嵌入式逻辑分析仪的使用流程  / 271

7.7.3 Signal Tap使用示例  / 272

7.7.4 实验任务  / 278

小结  / 279

第8章 数字电路与系统的设计实践  / 280

本章目的  / 280

8.1 变模计数器设计  / 280

8.1.1 功能要求  / 280

8.1.2 设计分析  / 280

8.1.3 逻辑设计  / 281

8.1.4 设计实现  / 281

8.1.5 实验任务  / 282

8.2 移动显示字符设计  / 285

8.2.1 功能要求  / 285

8.2.2 设计分析  / 285

8.2.3 逻辑设计  / 286

8.2.4 设计实现  / 287

8.2.5 实验任务  / 288

8.3 分频器设计  / 289

8.3.1 功能要求  / 289

8.3.2 设计分析  / 289

8.3.3 逻辑设计  / 290

8.3.4 设计仿真  / 291

8.3.5 实际运行结果  / 291

8.3.6 实验任务  / 292

8.4 多功能数字钟设计  / 292

8.4.1 功能要求  / 292

8.4.2 设计分析  / 292

8.4.3 数字钟主体电路逻辑设计  / 293

8.4.4 功能扩展电路逻辑设计  / 297

8.4.5 顶层电路设计  / 299

8.4.6 实验任务  / 302

8.5 频率计设计  / 302

8.5.1 功能要求  / 302

8.5.2 设计分析  / 303

8.5.3 逻辑设计  / 305

8.5.4 顶层电路设计  / 310

8.5.5 实验任务  / 311

8.6 LCD1602显示的定时器设计  / 311

8.6.1 功能要求  / 311

8.6.2 设计分析  / 311

8.6.3 30秒递减定时器设计  / 312

8.6.4 字符型LCD1602模块的显示设计  / 313

8.6.5 顶层模块设计  / 321

8.6.6 设计实现  / 322

8.6.7 实验任务  / 323

8.7 DDS函数信号发生器设计  / 323

8.7.1 功能要求  / 323

8.7.2 DDS产生波形的原理  / 324

8.7.3 设计分析  / 326

8.7.4 顶层电路设计  / 330

8.7.5 设计实现  / 331

8.7.6 D/A转换电路及放大电路设计  / 332

8.7.7 实验任务  / 333

小结  / 335

第9章 VGA接口控制器的设计  / 336

本章目的  / 336

9.1 VGA接口标准和接口电路  / 336

9.1.1 VGA接口标准  / 336

9.1.2 VGA接口电路  / 338

9.2 VGA彩条信号发生器  / 340

9.2.1 功能要求  / 340

9.2.2 设计分析  / 340

9.2.3 逻辑设计  / 341

9.2.4 顶层电路设计  / 345

9.2.5 对目标器件编程与硬件电路测试  / 346

9.2.6 使用Signal Tap Logic Analyzer观察VGA工作时序  / 347

9.2.7 实验任务  / 350

9.3 24位位图显示  / 350

9.3.1 功能要求  / 350

9.3.2 设计分析  / 351

9.3.3 逻辑设计  / 351

9.3.4 顶层电路设计  / 354

9.3.5 对目标器件编程与硬件电路测试  / 356

9.3.6 实验任务  / 357

小结  / 357

第10章 静态时序分析工具TimeQuest的使用  / 358

本章目的  / 358

10.1 静态时序分析基础  / 359

10.1.1 同步路径的分析  / 359

10.1.2 异步路径的分析  / 363

10.1.3 外部同步路径的分析  / 363

10.1.4 不同的时序模型  / 367

10.2 时序分析工具的使用  / 367

10.2.1 时序分析工具的使用流程  / 367

10.2.2 两级流水线乘法器设计  / 368

10.2.3 设定时序要求  / 370

10.2.4 全编译并完成布局布线  / 372

10.2.5 验证时序  / 374

小结  / 376

第三篇 可编程片上系统

第11章 可编程片上系统入门  / 380

本章目的  / 380

11.1 SOPC技术概述  / 380

11.1.1 SOC技术  / 380

11.1.2 SOPC技术  / 381

11.1.3 基于Nios II处理器的嵌入式系统组成  / 381

11.2 SOPC系统设计流程  / 383

11.3 SOPC硬件系统设计  / 384

11.3.1 设计任务  / 384

11.3.2 创建Quartus Prime工程  / 385

11.3.3 构建嵌入式硬件系统  / 386

11.3.4 在Quartus Prime项目中集成嵌入式硬件系统  / 394

11.4 SOPC软件开发  / 398

11.4.1 软件开发工具简介  / 398

11.4.2 创建Nios II软件工程  / 398

11.4.3 应用程序设计  / 402

11.4.4 应用工程编译调试  / 403

11.5 SOPC系统设计实践  / 407

11.5.1 Nios II嵌入式处理器PIO应用  / 407

11.5.2 Nios II嵌入式处理器中断应用  / 413

11.5.3 Nios II实时时钟设计  / 418

小结  / 424

第12章 自定义IP组件设计  / 425

本章目的  / 425

12.1 重识Avalon总线  / 425

12.1.1 Avalon Clock和Avalon Reset接口  / 427

12.1.2 Avalon-MM接口  / 427

12.1.3 Avalon中断接口  / 429

12.1.4 Avalon-ST接口  / 429

12.1.5 Avalon Conduit接口  / 430

12.1.6 Avalon-TC接口  / 431

12.2 自定义IP组件设计  / 431

12.2.1 PWM的HDL设计  / 431

12.2.2 PWM自定义IP组件的封装方法  / 435

12.2.3 PWM自定义IP组件的应用方法  / 436

小结  / 438

附录A DE2-115开发板引脚配置信息  / 439

参考文献  / 445

c3ca5643df04e201bad14f4fabede49e.png

5aa980304725c0d03516fddc94a9bbd6.png

一年一度的423读书日就要来了,华章科技在此期间为您带来7场不同主题的技术干货直播,直播内容及观看方式请点击上方链接查看。

5301c11ae95878689416c6e187d29661.gif

更多精彩回顾

书讯 | 4月书讯(上)|  上新了,华章

书讯 | 4月书讯(下)| 上新了,华章

资讯 | 视频时代的大数据:问题、挑战与解决方案

书单 | 金三银四求职季,十道腾讯算法真题解析!

干货 | TypeScript 中的“类型”到底是个啥?

收藏 | 终于有人把Scrapy爬虫框架讲明白了

上新 | NLP大牛菲利普•科恩机器翻译权威著作

赠书 | 数字经济下半场中,金融企业应该如何进行数字化经营呢?

f1fa37628bc51677a5760d36aa40794f.gif

175fc9304699b974a384ec1806584e46.gif

点击阅读全文购买



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3